package com.zx._12_算法.数据结构.stack;

public class Demo1 {

    //	 下面的字符串中包含小括号，请编写一个函数判断字符串中的括号是否合法，所谓合法，就是括号成对出现
//	sdf(ds(ew(we)rw)rwqq)qwewe   合法
//	(sd(qwqw)sd(sd))             合法
//	()()sd()(sd()fw))(           不合法
    public static void main(String[] args) {
        String[] params = {"sdf(ds(ew(we)rw)rwqq)qwewe", "(sd(qwqw)sd(sd))", "()()sd()(sd()fw))("};
        System.out.println("结构1#######################");
        for (String str : params) {
            Stack<String> stack = new Stack<>();
            char[] charArray = str.toCharArray();
            for (char c : charArray) {
                if (c == '(') {
                    stack.push("(");
                } else if (c == ')') {
                    stack.pop();
                }
            }
            boolean isOk = stack.isEmpty();
            System.out.println(isOk ? "合法" : "不合法");
        }

        System.out.println("结构2#######################");
        for (String str : params) {
            Stack2<String> stack = new Stack2<>();
            char[] charArray = str.toCharArray();
            for (char c : charArray) {
                if (c == '(') {
                    stack.push("(");
                } else if (c == ')') {
                    stack.pop();
                }
            }
            boolean isOk = stack.isEmpty();
            System.out.println(isOk ? "合法" : "不合法");
        }

    }
}
